//package com.smxy.hunzi.user.config;
//
//import org.apache.commons.collections.map.LinkedMap;
//import org.apache.shiro.mgt.DefaultSecurityManager;
//import org.apache.shiro.spring.web.ShiroFilterFactoryBean;
//import org.apache.shiro.web.mgt.DefaultWebSecurityManager;
//import org.springframework.beans.factory.annotation.Qualifier;
//import org.springframework.context.annotation.Bean;
//import org.springframework.context.annotation.Configuration;
//
//import java.util.LinkedHashMap;
//import java.util.Map;
//
///**
// * @author 李涛
// * @date 2020-08-15 13:31
// */
//@Configuration
//public class ShiroConfig {
//
//    @Bean
//    public ShiroFilterFactoryBean getShiroFilterFactoryBean(@Qualifier("securityManager") DefaultSecurityManager securityManager){
//        ShiroFilterFactoryBean filterFactoryBean = new ShiroFilterFactoryBean();
//
//        //设置安全管理器
//        filterFactoryBean.setSecurityManager(securityManager);
//
//        //添加shiro的内置过滤器
//        /*
//            anon: 无需认证就可访问
//            authc：必须认证才能访问
//            user：必须拥有记住我功能才能访问
//            perms: 拥有对某个资源的权限才能访问
//            role:拥有某个角色权限才能访问
//       */
//        Map<String,String> filterMap = new LinkedHashMap<>();
//        filterMap.put("/user/userinfo/delete", "authc");
//        filterMap.put("/user/userinfo/update", "authc");
//        filterMap.put("/user/userinfo/updateuserstatus", "perms[user:admin]");
//        filterFactoryBean.setFilterChainDefinitionMap(filterMap);
//
//        //设置未授权
//        filterFactoryBean.setUnauthorizedUrl("/user/userinfo/noauth");
//
//        //设置未登录
//        filterFactoryBean.setLoginUrl("/user/userinfo/nologin");
//        return filterFactoryBean;
//    }
//    @Bean(name = "securityManager")
//    public DefaultWebSecurityManager getDefaultWebSecurityManager (@Qualifier("userRealm") UserRealm userRealm){
//        DefaultWebSecurityManager  securityManager = new DefaultWebSecurityManager ();
//        securityManager.setRealm(userRealm);
//        return securityManager;
//    }
//    @Bean
//    public UserRealm userRealm(){
//        return new UserRealm();
//    }
//}
